One type of computer-related attack is based on an inherent access to sensitive data that is traveling over an easily monitored path, for example, data traveling on an open bus. Mechanical methods (e.g., based on board circuit layout) can be used to reduce the accessibility of an open path, but these are not always practical and increase cost. A simple but also generally impractical solution to this problem is to not allow sensitive data travel over accessible paths. This is often not possible for a significant number of resource designs, such as those in which cost, performance requirements and/or current chip capabilities preclude media decryption and decompression from being feasibly implemented in the same physical module.
Another apparent solution would be to strongly encrypt any sensitive data that may be accessible to a hacker. However this solution is not feasible in many instances, because, among other reasons, this requires public key cryptography and/or secure key storage capability in one or both modules, which is at present a very expensive solution. Thus, strong cryptographic protection of the key often remains an unfulfilled need. In such a situation, the key used to encrypt the data, and/or the key used to encrypt the encryption key, eventually needs to be transferred from one module to another.
For compressed data, the limitation is one of processing power in the resources. For example, it is precisely when a decoder chip is incapable of performing real-time decryption on media that the data travels on an open bus in the clear. Therefore, encrypting this data to protect it is not an option.
A significant percentage of data-related security attacks to easily accessible data result from the ability to automate the analysis of the data. To this end, software and/or hardware tools analyze transmitted data looking to match known probability patterns, bit pattern signatures and/or frequency distributions. For example, one type of attack attempts to extract compressed media from data tapped off a bus by searching for start codes and estimating packet lengths.
As mentioned above, with encryption-based solutions, the inability to securely perform public key cryptography in a data decryption module (where “data” refers to code, media, text, or any other digital information) means that a data decryption key travels from the encryption module to the decryption module. As a result, even with encrypted data, in such a “security-constrained” environment, the data is not necessarily safe from an automated discovery attack. For example, attacks exist that attempt to discover the transmitted encryption key via correct decryption hypothesis. Some repetitive trial and error is required, but automated tools allow this to be accomplished; when the key is discovered, it becomes readily apparent from the signature of the data.
What is needed is a way to frustrate automated-analysis-types of attacks in constrained-resource scenarios. Although manual attacks are still possible, it has been found that manual attacks require a high skill level and are expensive, and thus do not spread at anywhere near the rate of that automated attacks spread, which only require a small expense and a low-skill level.